import axios from 'axios';
// process.env.NODE_ENV 获取环境
// production 生产环境 -- 接口文档的生产网址
// development 开发环境 -- 接口文档的开发网址（因为配置跨域，现在能提取的公共网址“/prod-api”）
// axios.defaults.baseURL = process.env.NODE_ENV == "production" ? "XXX" : "/prod-api"
const http = axios.create({
  baseURL: '/prod-api',
  timeout: 30000,
  // transformRequest: data => {
  //     if (_.isPlainObject(data)) data = qs.stringify(data);
  //     return data;
  // }
});



// 添加请求拦截器 --- 将来放token
http.interceptors.request.use(config => {
  // 在发送请求之前做些什么
  // 把Token传递给服务器
  let token = localStorage.getItem("token");
  if (token && config.url !== '/login' && config.url !== '/captchaImage') {
    config.headers['Authorization'] = 'Bearer ' + token;
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  console.log(error);
  return Promise.reject(error);
});

// 添加响应拦截器
http.interceptors.response.use(function (response) {
  // 2xx 范围内的状态码都会触发该函数。
  // 对响应数据做点什么
  // return response;
  return response.data; // 因为请求成功的数据都在data里，所以返回response.data
}, function (error) {
  // 超出 2xx 范围的状态码都会触发该函数。
  // 对响应错误做点什么
  console.log(error);
  return Promise.reject(error);
});






// 导出axios二次封装文件
export default http;